package com.suzka.service;

import com.suzka.pojo.Drug;
import java.util.List;

/**
 * 药品服务接口，定义了对药品数据进行CRUD操作的方法
 */
public interface DrugService {
    /**
     * 查询所有药品信息
     * @return 药品列表，包含所有药品的详细信息
     */
    List<Drug> findAll();

    /**
     * 根据ID查询药品信息
     * @param id 药品ID
     * @return 对应ID的药品对象，如果不存在则返回null
     */
    Drug findById(Integer id);

    /**
     * 保存药品信息
     * @param drug 需要保存的药品对象
     * @return 保存是否成功，true表示成功，false表示失败
     */
    boolean save(Drug drug);

    /**
     * 更新药品信息
     * @param drug 需要更新的药品对象，必须包含有效的药品ID
     * @return 更新是否成功，true表示成功，false表示失败
     */
    boolean update(Drug drug);

    /**
     * 根据ID删除药品
     * @param id 需要删除的药品ID
     * @return 删除是否成功，true表示成功，false表示失败
     */
    boolean deleteById(Integer id);

    /**
     * 根据药品名称关键字搜索药品
     * @param keyword 搜索关键字
     * @return 匹配关键字的药品列表，如果没有匹配项则返回空列表
     */
    List<Drug> searchByName(String keyword);
}
